﻿#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<math.h>
#if 0
//某地发⽣了⼀件盗窃案，警察通过排查确定盗窃者必为4个嫌疑⼈的⼀个。
//以下为4个嫌疑⼈的供词:
//A说：不是我。
//B说：是C。
//C说：是D。
//D说：C在胡说
//已知3个⼈说了真话，1个⼈说的是假话。
//现在请根据这些信息，写⼀个程序来确定到底谁是盗窃者。

//int main()
//{
//	int xiao = 0;
//	for (xiao = 'a'; xiao <= 'd'; xiao++)
//	{
//		if (((xiao != 'a') + (xiao == 'c') + (xiao == 'd') + (xiao != 'd')) == 3)
//		{
//			printf("小偷是:%c ", xiao);
//		}
//	}
//	return 0;
//}
//写⼀个代码打印1~100000之间的所有的⾃幂数，中间⽤空格分隔。1^3+5^3+3^3=153
//int main()
//{
//	
//	for (int i = 1; i <= 100000; i++)
//	{
//		int count = 1;
//		int tmp = i;
//		while (tmp / 10)
//		{
//			count++;
//			tmp /= 10;
//		}
//		tmp = i;
//		int sum = 0;
//		while (tmp)
//		{
//			sum += (int)pow(tmp % 10, count);
//			tmp /= 10;
//		}
//		if (i == sum)
//		{
//			printf("%d ", i);
//		}
//	}
//	return 0;
//}
//输⼊⼀个整数n，打印对应2*n-1⾏的菱形图案，⽐如，输⼊7，输出如下图案，图案总共13⾏
int main()
{
	int n;
	scanf("%d", &n);
	for (int i = 1; i <= n; i++)
	{
		int sum = n - i;
		while (sum--)
		{
			printf(" ");
		}
		for (int k = 0; k < 2 * i - 1; k++)
		{
			printf("*");
		}
		printf("\n");
	}
	for (int i = 1; i <= n-1; i++)
	{
		for (int j = 0; j < i; j++)
		{
			printf(" ");
		}
		for (int k = 0; k<2*n-2*i-1; k++)
		{
			printf("*");
		}
		printf("\n");
	}
}
#endif
//⽔已知1瓶汽⽔1元，2个空瓶可以换⼀瓶汽⽔，输⼊整数n（n>=0），表⽰n元钱，计算可以多少汽⽔，请编程实现。
int main()
{
	int n;
	scanf("%d", &n);
	int s = 0, k = 0;
	s += n;//水
	k += n;
	int sum = 0;
	while (k >= 2)
	{
		s += k / 2;
		k = k / 2 + k % 2;
	}
	printf("%d", s);
	return 0;
}